package com.acme.bankapp.domain.account;

/**
 * Determines the behavior of the account
 *
 * @author S.Zhidkov
 */
public interface Account {

    /**
     * Puts money into the account
     * @param amount amount of the money
     */
    void deposit(double amount);

    /**
     * Method withdraw money from the account
     * @param amount money to withdraw
     */
    void withdraw(double amount);

    /**
     * Returns balance of the account
     * @return balance
     */
    double getBalance();

    /**
     * Method returns maximum amount of the money that we can withdraw from the account.
     * @return money amount
     */
    double maximumAmountToWithdraw();
}
